import type {PageParam, PageResult} from '@vben/request';
import type {Dayjs} from 'dayjs';

import {requestClient} from '#/api/request';
export namespace PerFamilyPropertyApi {
  /** 人员房产情况信息 */
  export interface FamilyProperty {
    id: number; // 主键ID
    employeeId?: number; // 人员ID，对应 per_employee.id
    relation: string; // 与本人关系（称谓）
    systemPersonId: number; // 系统人员ID，对应system_person.id
    familyName: string; // 产权人姓名
    cardType: string; // 证件类型
    familyIdcard: string; // 产权人身份证号
    coOwnership: string; // 共有产权情况
    propertySource: string; // 房产来源/去向
    address: string; // 房产坐落地址
    buildYear: string; // 建筑年份
    buildArea: string; // 建筑面积（平方米）
    propertyType: string; // 房产性质（住宅/商用/办公等）
    transactionDate: string; // 交易时间
    fundSource: string; // 资金来源
    transactionAmount: number; // 交易金额
    propertyCertNo: string; // 房产证编号
    purchaseMethod: string; // 购房方式（一次性/贷款/共有）
    isPrimaryResidence: number; // 是否为主要住宅（1：是，0：否）
    remarks: string; // 备注
    status: number; // 是否有效（1：有效，0：无效）
  }
}

/** 查询人员房产情况分页 */
export function getFamilyPropertyPage(data: PageParam,desensitize: boolean,encrypt: boolean) {
  return requestClient.post<PageResult<PerFamilyPropertyApi.FamilyProperty>>('/per/family-property/page', data,{ desensitize,encrypt });
}

/** 查询人员房产情况详情 */
export function getFamilyProperty(id: number) {
  return requestClient.get<PerFamilyPropertyApi.FamilyProperty>(`/per/family-property/get?id=${id}`);
}

/** 新增人员房产情况 */
export function createFamilyProperty(data: PerFamilyPropertyApi.FamilyProperty) {
  return requestClient.post('/per/family-property/create', data);
}

/** 修改人员房产情况 */
export function updateFamilyProperty(data: PerFamilyPropertyApi.FamilyProperty) {
  return requestClient.put('/per/family-property/update', data);
}

/** 删除人员房产情况 */
export function deleteFamilyProperty(id: number) {
  return requestClient.delete(`/per/family-property/delete?id=${id}`);
}

/** 批量删除人员房产情况 */
export function deleteFamilyPropertyList(ids: number[]) {
  return requestClient.delete(`/per/family-property/delete-list?ids=${ids.join(',')}`)
}

/** 导出人员房产情况 */
export function exportFamilyProperty(params: any) {
  return requestClient.download('/per/family-property/export-excel', { params });
}
